6
תגובות
איך לקחת ערך(string) , להציג רק תאות הראשונה ותאחרונה באמצע להחליף את כל האותיות ל * ?
עד כה הגעצי לזה :
נגיד והערך ככה :
[email protected]
זה יגיע לזה :
example
ואז ב- str_repeat הוא יחליף את הכל ל Password symbol (*) :
*********
אבל אני רוצה שהוא יציג את האות הראשונה והאחרונה ככה :
e******[email protected]
משהו יודע ?
עד כה הגעצי לזה :
$str = strtok($result['useremail'],'@');
$str = str_repeat ('*', strlen ($str));
$str = str_repeat ('*', strlen ($str));
נגיד והערך ככה :
[email protected]
זה יגיע לזה :
example
ואז ב- str_repeat הוא יחליף את הכל ל Password symbol (*) :
*********
אבל אני רוצה שהוא יציג את האות הראשונה והאחרונה ככה :
e******[email protected]
משהו יודע ?
6 תשובות
$str = "asdf";
$first = $str[0];
$last = $str[strlen($str)-1];
$str = $first . str_repeat ('*', strlen ($str) -2) . $last;
echo $str; // prints a**f
$first = $str[0];
$last = $str[strlen($str)-1];
$str = $first . str_repeat ('*', strlen ($str) -2) . $last;
echo $str; // prints a**f
סבבה יותר טוב אבל נתקעתי ככה :
$str = explode("@", $result['useremail']);
$str = $str[0];
$str1 = $str[1];
$first = $str[0];
$last = $str[strlen($str)-1];
$str = $first . str_repeat ('*', strlen ($str) -2) . $last.$str1;
$str = $str[0];
$str1 = $str[1];
$first = $str[0];
$last = $str[strlen($str)-1];
$str = $first . str_repeat ('*', strlen ($str) -2) . $last.$str1;
אני רוצה לקחת את הערך שבמקרה זה :
[email protected]
לחתוך אותו לשניים:
example
@gmail.com
ולקחת את האות הראשונה והאחרונה של ה- example ובאמצע לשים * ואז בסוף את הכל להכניס למשתנה אחד:
e****[email protected]
אתה יכול לכוון אותי ?
תשים לב, פה:
$str = $str[0];
$str1 = $str[1];
$str1 = $str[1];
אתה לא באמת שומר את החלק השני של המייל. כי בשורה הראשונה אתה "דורס" את המערך.
תתן שם אחר למשתנה(בשורה הראשונה).
ובסוף אל תשכח להוסיף את השטרודל.
וואלה לא הבנתי..
הינה שינתי לזה :
$string = explode("@", $result['useremail']);
$str = $string[0];
$str1 = $string[1];
$first = $str[0];
$last = $str[strlen($str)-1];
$return = $first . str_repeat ('*', strlen ($str) -2) . $last.'@'.$str1;
$str = $string[0];
$str1 = $string[1];
$first = $str[0];
$last = $str[strlen($str)-1];
$return = $first . str_repeat ('*', strlen ($str) -2) . $last.'@'.$str1;
ועדין לא עובד :
Warning: str_repeat(): Second argument has to be greater than or equal to 0
או פיתרון יותר פשוט:
$email = '[email protected]';
$pos = strrpos($email, '@') - 2;
echo substr_replace($email, str_repeat('*', $pos), 1, $pos);
$pos = strrpos($email, '@') - 2;
echo substr_replace($email, str_repeat('*', $pos), 1, $pos);
דיסקליימר: לא בדקתי, 100% שלא יעבוד עם אימייל של אות אחת, לא יצנזר מייל עם שתי אותיות. gl